Processors in modern computing systems typically utilize a relatively small and fast cache memory for quick access to frequently used data during execution of a program. By temporarily storing frequently accessed data in faster memory, the processor can speed execution by avoiding the use of higher latency main memory. Due to its size, cache memory can be located on the same physical die as the processing core.
When the data no longer needs to remain in the cache, the data can be written back to the main memory if it has been modified while in the cache, and flushed from the cache. Flushing involves invalidating the cached data, effectively deleting the entries in the cache. This process may be initiated by a “write-back and invalidate” instruction such as WBINVD.